Duck的简易饲养方法
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
一定要有不需要参数的构造函数
如果Duck的构造函数需要一项参数会怎样?想想看。上一个练习中我们已经构造了一个有int
型的size
参数。如果是在不知道Duck的大小时有预设的大小让程序员创建出Duck可能是个更好的主意。
想象一下你可以让用户在创建Duck时有两个选项:一个可以指定Duck的大小(通过构造函数的参数),另外一个使用默认值而无需指定大小。
你无法只依靠单一的构造函数就能够很清楚的达到这个目的。要记得,如果某个方法或构造函数有一项参数,这就必须在调用该方法或构造函数的时候传入适当的参数。你没有办法作出一种没有给参数时就使用默认值的方法,因为在这个情况下没有给参数就无法通过编译。也许你可以用下面这种不太理想的方法取代:
public class Duck {
int size;
public Duck(int newSize) {
if (newSize == 0) {
size = 27;
} else {
size = newSize;
}
}
}
这代表程序员必须要传入0是意味着要使用默认的大小而不是真正的0。万一程序员真的做出0大小的Duck怎么办?这样的问题在于传入0的意图无法真实的反映出来。
在线练习
{$ activeFileHint $}